# -*- coding:utf-8 -*-
# @FileName : app\utils\response_factory.py
# @Time     : 2025/11/28
# @Author   : 天空之城
"""响应工厂模块

此模块提供了一个统一的响应格式工厂类，用于生成标准化的API响应。
使用工厂模式可以确保所有API接口的响应格式一致，便于后续维护和扩展。
"""
import time
from flask import jsonify


class ResponseFactory:
    """响应工厂类，用于生成标准化的API响应"""
    
    @staticmethod
    def success(data=None, msg="请求成功", code=200):
        """生成成功响应
        
        Args:
            data: 响应数据，默认为None
            msg: 响应消息，默认为"请求成功"
            code: 响应状态码，默认为200
            
        Returns:
            tuple: (jsonify响应对象, HTTP状态码)
        """
        response = {
            "code": code,
            "msg": msg,
            "data": data,
            "timestamp": int(time.time())
        }
        return jsonify(response), code
    
    @staticmethod
    def error(msg="请求失败", code=400, errors=None):
        """生成错误响应
        
        Args:
            msg: 错误消息，默认为"请求失败"
            code: 错误状态码，默认为400
            errors: 详细错误信息，默认为None
            
        Returns:
            tuple: (jsonify响应对象, HTTP状态码)
        """
        response = {
            "code": code,
            "msg": msg,
            "errors": errors,
            "timestamp": int(time.time())
        }
        return jsonify(response), code